//===============================================================================
// Jeff Barnes - 02/16/2007
// WCF Callback Sample
// http://blog.jeffbarnes.net
// http://jeffbarnes.net/portal/blogs/jeff_barnes/contact.aspx
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//===============================================================================

using System;
using System.ServiceModel;
using SLS.ExClassLib.Message;
namespace SLS.ExClassLib.Contract
{
    // NOTE: The use of one way service operations allows the callback to occur while
    //       still using the single concurrency mode rather than Reentrant or Multiple.

    /// <summary>
    /// Beer Inventory Service Operations
    /// </summary>
    [ServiceContract(
        Name = "WorkFlowClientService",
        Namespace = "http://CallBack/WorkFlowClientService/",
        SessionMode = SessionMode.Required,
        CallbackContract = typeof(IWorkFlowCenterCallBack))]
    public interface IWorkFlowCenter
    {
         [OperationContract(IsOneWay=true)]
        void WFService(MessageEx msg);  
    }
    public interface IWorkFlowCenterCallBack
    {
        /// <summary>
        /// Notifies the client that a guest has joined the party
        /// </summary>
        /// <param name="guestName">Name of the guest</param>
        [OperationContract(IsOneWay = true)]
        void NotifyWFClient(MessageEx msg);
    }
}
